﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;

namespace sdk_cop
{
    class PersonalSignVersifyRequestV1 : AbstractIcbcRequest<IcbcResponse>
    {
        /// <summary>
        /// 获取响应类
        /// </summary>
        /// <returns>页面类型的服务返回null</returns>
         public override Type getResponseClass()
        {
            return null;
        }
         /// <summary>
         /// PersonalSignVersifyRequestV1类的构造函数
         /// 设置请求URL
         /// </summary>
         public PersonalSignVersifyRequestV1()
         {
             this.getExtraParams().Add("interfaceName", "ICBC_PEEBANK_CERTVERIFY_NEW") ;
             this.setServiceUrl("https://gw.open.icbc.com.cn/ui/personal/sign/V1/verify");
	    }
         /// <summary>
         /// 是否支持加密（目前sdk只支持对字段进行AES加解密）
         /// </summary>
         /// <returns>一般返回false</returns>
        public override Boolean isNeedEncrypt()
        {
            return false;
        }
        /// <summary>
        /// http发起请求方式（支持GET、POST两种方式）
        /// </summary>
        /// <returns>一般返回POST</returns>
        public override string getMethod()
        {
            return "POST";
        }
        /// <summary>
        /// 获取业务类类型
        /// </summary>
        /// <returns>返回request类内部定义的BizContent类的类型</returns>
	    public override Type getBizContentClass() {
            return Type.GetType("sdk_cop" + ".PersonalSignVersifyRequestV1+PersonalSignVersifyRequestV1Biz", true, true);
        }
        /// <summary>
        /// 获取通知地址
        /// </summary>
        /// <returns>通知地址</returns>
        public string getNotifyUrl()
        {
            return getExtraParams()["notify_url"];
        }
        /// <summary>
        /// 设置通知地址参数（通知地址是API网关通过该地址通知商户一些api接口变化、交易状态等信息）
        /// </summary>
        /// <param name="notifyUrl">通知地址</param>
        public void setNotifyUrl(string notifyUrl)
        {
            getExtraParams().Add("notify_url", notifyUrl);
        }
        /// <summary>
        /// 内部业务类，封装需要发送给服务端的业务字段
        /// </summary>
        [DataContract]
        public class PersonalSignVersifyRequestV1Biz : BizContent
        {
            [DataMember]
		    private string language;
            public string getLanguage()
            {
                return language;
            }
            public void setLanguage(string value)
            {
                language = value;
            }
            [DataMember]
            private string tran_time;
            public string getTranTime()
            {
                return tran_time;
            }
            public void setTranTime(string value)
            {
                tran_time = value;
            }
		    [DataMember]
		    private string verified_corp_id;
            public string getVerifiedCorpId()
            {
                return verified_corp_id;
            }
            public void setVerifiedCorpId(string value)
            {
                verified_corp_id = value;
            }
		    [DataMember]
		    private string verified_corp_name;
            public string getVerifiedCorpName()
            {
                return verified_corp_name;
            }
            public void setVerifiedCorpName(string value)
            {
                verified_corp_name = value;
            }
		    [DataMember]
		    private string logon_id;
            public string getLogonId()
            {
                return logon_id;
            }
            public void setLogonId(string value)
            {
                logon_id = value;
            }
		    [DataMember]
		    private string authen_acct_name;
            public string getAuthenAcctName()
            {
                return authen_acct_name;
            }
            public void setAuthenAcctName(string value)
            {
                authen_acct_name = value;
            }
		    [DataMember]
		    private string authen_acct_no;
            public string getAuthenAcctNo()
            {
                return authen_acct_no;
            }
            public void setAuthenAcctNo(string value)
            {
                authen_acct_no = value;
            }
		    [DataMember]
		    private string cert_type;
            public string getCertType()
            {
                return cert_type;
            }
            public void setCertType(string value)
            {
                cert_type = value;
            }
		    [DataMember]
		    private string cert_no;
            public string getCertNo()
            {
                return cert_no;
            }
            public void setCertNo(string value)
            {
                cert_no = value;
            }
		    [DataMember]
		    private string authen_name;
            public string getAuthenName()
            {
                return authen_name;
            }
            public void setAuthenName(string value)
            {
                authen_name = value;
            }
		    [DataMember]
		    private string verified_flag;
            public string getVerifiedFlag()
            {
                return verified_flag;
            }
            public void setVerifiedFlag(string value)
            {
                verified_flag = value;
            }
		    [DataMember]
		    private string verified_kind;
            public string getVerifiedKind()
            {
                return verified_kind;
            }
            public void setVerifiedKind(string value)
            {
                verified_kind = value;
            }
		    [DataMember]
		    private string verified_type;
            public string getVerifiedType()
            {
                return verified_type;
            }
            public void setVerifiedType(string value)
            {
                verified_type = value;
            }
		    [DataMember]
		    private string verified_info;
            public string getVerifiedInfo()
            {
                return verified_info;
            }
            public void setVerifiedInfo(string value)
            {
                verified_info = value;
            }
		    [DataMember]
		    private string request_ip;
            public string getRequestIp()
            {
                return request_ip;
            }
            public void setRequestIp(string value)
            {
                request_ip = value;
            }
		    [DataMember]
		    private string verified_id;
            public string getVerifiedId()
            {
                return verified_id;
            }
            public void setVerifiedId(string value)
            {
                verified_id = value;
            }
		    [DataMember]
		    private string notify_type;
            public string getNotifyType()
            {
                return notify_type;
            }
            public void setNotifyType(string value)
            {
                notify_type = value;
            }
		    [DataMember]
		    private string auto_turn_flag;
            public string getAutoTurnFlag()
            {
                return auto_turn_flag;
            }
            public void setAutoTurnFlag(string value)
            {
                auto_turn_flag = value;
            }

        }

    }
}
